const { Sequelize, Model } = require("sequelize")

const { sequelize } = require("../../config/db.js");

class ChatList extends Model {

}

ChatList.init({
    id: {
      type: Sequelize.INTEGER(11),
      autoIncrement: true, // 自动增长
      comment: '聊天消息',
      primaryKey: true // 主键字段
    },
    groupId: {
      type: Sequelize.INTEGER(11),
      comment: '所属聊天组id'
    },
    userId: {
      type: Sequelize.INTEGER(11),
      comment: '买家用户id'
    },
    adminId: {
      type: Sequelize.INTEGER(11),
      comment: '卖家用户id'
    },
    userType: {
      type: Sequelize.ENUM('user','admin'),
      comment: '该条消息发送者',
      defaultValue: null
    },
    content: {
      type: Sequelize.STRING(1024),
      comment: '消息内容'
    },
    messageType: {
      type: Sequelize.ENUM('text','goods', 'order'),
      comment: '消息类型(text文字消息,goods商品,order订单)',
      defaultValue: 'text'
    },
    read: {
      type: Sequelize.BOOLEAN,
      comment: '是否对方已读(0 false，1 true)',
      defaultValue: 0
    },
}, {
    sequelize,
    tableName: "chat_list", // 如果不设置tableName，自动生成的数据库中的admin_user表的表名为admin_user
    freezeTableName: false,
    timestamps: true
})
ChatList.sync({ alter: true }) // 这将检查数据库中表的当前状态(它具有哪些列,它们的数据类型等),然后在表中进行必要的更改以使其与模型匹配.
//timestamp字段，默认为true，表示数据库中是否会自动更新createdAt和updatedAt字段，false表示不会增加这个字段。
//freezeTableName,默认为true,会自动给表名表示为复数: user => users，为false则表示，使用我设置的表名
module.exports = {
  ChatList
}